#ifndef __BSP_BEEP_H__
#define __BSP_BEEP_H__

#include "pinctrl.h"
#include "soc_osal.h"
#include "gpio.h"

// 蜂鸣器状态定义
typedef enum
{
    BEEP_OFF = GPIO_LEVEL_LOW,
    BEEP_ON = GPIO_LEVEL_HIGH,
} beep_state_t;

// 蜂鸣器控制接口
/**
 * @brief  初始化蜂鸣器设备。
 * @param  [in] pin 蜂鸣器设备使用的GPIO引脚， 参考 @ref pin_t 。
 * @retval ERRCODE_SUCC 成功。
 * @retval Other        失败，参考 @ref errcode_t 。
 */
errcode_t bsp_beep_init(pin_t pin);

/**
 * @brief  设置蜂鸣器状态。
 * @param  [in] state 蜂鸣器需要设置的状态， 参考 @ref beep_state_t 。
 * @retval ERRCODE_SUCC 成功。
 * @retval Other        失败，参考 @ref errcode_t 。
 */
errcode_t bsp_beep_set_state(beep_state_t state);

/**
 * @brief  翻转蜂鸣器状态。
 * @retval ERRCODE_SUCC 成功。
 * @retval Other        失败，参考 @ref errcode_t 。
 */
errcode_t bsp_beep_toggle(void);

#endif // !__BSP_BEEP_H__
